home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / bildschirmschoner / swazblanker / programmer / include / libraries / swazblanker.h < prev    next >
C/C++ Source or Header  |  1996-04-07  |  9KB  |  275 lines

  1. #ifndef LIBRARIES_SWAZBLANKER_H
  2. #define LIBRARIES_SWAZBLANKER_H
  3. /*
  4. **      $Filename: libraries/swazblanker.h $
  5. **      $Release: 2.12 $
  6. **      $Revision: 42.0 $
  7. **
  8. **    SwazBlanker definitions
  9. **
  10. **    (C) Copyright 1993-94 David Swasbrook
  11. **        All Rights Reserved
  12. */
  13.  
  14. /*****************************************************************************/
  15.  
  16. #ifndef EXEC_LIBRARIES_H
  17. #include <exec/libraries.h>
  18. #endif
  19.  
  20. /*****************************************************************************/
  21.  
  22. #define SWAZBLANKERNAME    "swazblanker.library"
  23. #define SB_TagBase        TAG_USER+0x80000
  24.  
  25. /*****************************************************************************/
  26.  
  27.  
  28. /*****************************************************************************
  29.    This structure is private, you should not have any need to read or write
  30.    to this. If you need read/write please use the SB_Get and SB_Set functions.
  31.  */
  32. struct SwazBlankerBase {
  33.     struct Library LibNode;
  34.     UBYTE    Flags;
  35.     APTR    SegList;
  36.  
  37.     struct SignalSemaphore Semaphore;    /* Shared resources management */
  38.     APTR    OldMousePtr;        /* A blank pointer, useful when opening a blank screen */
  39.  
  40.     struct Task *ServerMaster;        /* Pointer to swazblanker master task */
  41.     struct Task *BlankerTask;        /* Pointer to blanker task */
  42.  
  43.     struct Screen *Screen;        /* Pointer to blanker screen */
  44.     struct Window *Window;        /* Pointer to blanker window */
  45.  
  46.     BYTE    BlankerDieSignal;        /* Signal to server task from blanker */
  47.     BYTE    BlankerReadySignal;        /* Signal to server task from blanker */
  48.  
  49.     WORD    Pad2;
  50.  
  51.     STRPTR    OldInterfaceFontName;    /* Name of font to use for interfaces (NULL) */
  52.     STRPTR    BlankerDir;        /* Full Path to blanker directory */
  53.  
  54.     struct MsgPort *SBPort;        /* Port for use by SwazBlanker only */
  55.  
  56.     STRPTR    SaveFileName;        /* Filename for saving configuration */
  57.     STRPTR    UseFileName;        /* Filename for loading/using configuration */
  58.  
  59.     /* PRIVATE FIELDS FOLLOW */
  60.  
  61.  
  62.     struct SignalSemaphore ConfigSemaphore;    /* Config Shared resources management */
  63.     BYTE    BlankerTaskPri;
  64.     STRPTR    GuiFont;
  65.     struct Window *PrefsWindow;
  66.  
  67.     struct List BlankNotifyList;        /* List of SBNotify structures */
  68.     struct List PrefsList;        /* List of preferences modules running */
  69. };
  70.  
  71. /*****************************************************************************
  72.    This structure is for messages to the SBPort
  73.  */
  74.  
  75. struct SBMessage {
  76.     struct Message Message;
  77.     ULONG Type;            /* See below for message types */
  78.     ULONG Data;            /* Specific for type */
  79.     ULONG Result;            /* Result */
  80. };
  81.  
  82. #define SBMSG_PING            0
  83. #define SBMSG_BECOMEBLANKER        1
  84. #define SBMSG_BECOMEBLANKER_END    2
  85.  
  86. /*****************************************************************************
  87.    This structure is returned by SB_BlankerInfo()
  88.  */
  89. struct BlankerInfo {
  90.     struct Node Node;            /* So you can link it into a list if you like */
  91.     UWORD    Version;            /* Version of blanker module */
  92.     UWORD    Revision;            /* Revision of blanker module */
  93.     STRPTR    ShortDesc;        /* breif description */
  94.     STRPTR    LongDesc;            /* information buffer */
  95.     STRPTR    Author;            /* authors name */
  96.     STRPTR    EMail;            /* email address */
  97.     STRPTR    Time;            /* Compilation date/time */
  98.     ULONG    Stack;            /* recommended stack size */
  99.     ULONG    Kickstart;        /* minimum kickstart required */
  100.     ULONG    CPU;            /* cpu */
  101.     ULONG    Loading;
  102.  
  103.     /*** Private fields follow ***/
  104.     void *Pool;            /* Pool stuff */
  105. };
  106.  
  107.  
  108.  
  109.  
  110. /*****************************************************************************
  111.    This structure is returned by SB_OpenColorCycleTagList()
  112.    Structure is PRIVATE!
  113.  */
  114.  
  115. struct SBColorCyc {
  116.     ULONG    Flags;
  117.     BYTE    DieSig;
  118.     struct Screen *Screen;
  119.     struct ViewPort *ViewPort;
  120.     struct Task *ColorTask;
  121.     struct Task *CreatorTask;
  122.     APTR    Private;
  123. };
  124.  
  125.  
  126. /*****************************************************************************
  127.    This structure is returned by SB_OpenCopperTagList()
  128.    Structure is PRIVATE!
  129.  */
  130. #define    SB_MINCOPPER    30
  131. #define    SB_MAXCOPPER    200
  132.  
  133. struct SBCopper {
  134.     BYTE    DieSig;
  135.     UBYTE    Pen;
  136.     UBYTE    ColorAdd;
  137.     UBYTE    ColorRemove;
  138.     UBYTE    Color[3];
  139.     UBYTE    Pad;
  140.     WORD    Spacing;
  141.     WORD    SpectrumLength;
  142.     WORD    YOffset;
  143.     struct Screen *Screen;
  144.     struct Task *CopperTask;
  145.     struct Task *CreatorTask;
  146.     struct ViewPort *ViewPort;
  147.     struct UCopList *UCopList;
  148.  
  149.     WORD    Speed;
  150.     WORD    CurrLev;
  151.  
  152.     WORD    YStart;
  153.     WORD    YStop;
  154.  
  155.     /* Raw data follows ... */
  156.     LONG    Spectrum[SB_MAXCOPPER*2];
  157. };
  158.  
  159. /*****************************************************************************
  160.    This structure is returned by SB_AddPrefsTaskTagList()
  161.  */
  162.  
  163. struct BlankerPrefsNode {
  164.     struct Node Node;        /* Standard exec node */
  165.     struct Task *task;        /* Pointer to prefs task */
  166.     struct Window *window;    /* Pointer to window owned by prefs task */
  167.     APTR SBHelp;        /* Pointer returned by SB_HelpTagList() */
  168. };
  169.  
  170.  
  171. /*****************************************************************************
  172.     Mode values for SB_LockSBBase() and SB_UnLockSBBase().
  173.  */
  174. #define SBLOCK_READ        0
  175. #define SBLOCK_WRITE    1
  176.  
  177. /*****************************************************************************
  178.     Tag values for SB_SetBaseVarTagList() and SB_GetBaseVarTagList().
  179.  */
  180.  
  181. #define SBBV_ObtainSemaphore    SB_TagBase+0x01
  182. #define SBBV_FontInfo    SB_TagBase+0x02
  183. #define SBBV_PrefsWindow    SB_TagBase+0x03
  184. #define SBBV_BlankerPath    SB_TagBase+0x04
  185. #define SBBV_BlankerTaskPri    SB_TagBase+0x06
  186. #define SBBV_NumberOfPrefsTasks SB_TagBase+0x07
  187. #define SBBV_TimeString    SB_TagBase+0x08
  188.  
  189.  
  190. /*****************************************************************************
  191.     Tag values for SB_BlankerInfoTagList();
  192.  */
  193.  
  194. #define SBBI_Buffer        SB_TagBase+0x100
  195.  
  196. /*****************************************************************************
  197.     Tag values for SB_HelpTagList();
  198.  */
  199. #define SBHELP_BlankerPrefs    SB_TagBase+0x101
  200. #define SBHELP_Directory    SB_TagBase+0x102
  201.  
  202. #define SBHELPDIR_SYS    0    /* Dir for main help files etc... */
  203. #define SBHELPDIR_BLANKERS    1    /* Directory for blanker help files */
  204.  
  205. /*****************************************************************************
  206.     Tag values for SB_OpenCopperTagList() and SB_SerCopperTagList().
  207.  */
  208.  
  209. #define SBCOPPER_RandomiseColors    SB_TagBase+0x201    /* Randomise the colors being used */
  210. #define SBCOPPER_YStart        SB_TagBase+0x202    /* First line of copper */
  211. #define SBCOPPER_YStop        SB_TagBase+0x203    /* Last line of copper */
  212. #define SBCOPPER_Disabled        SB_TagBase+0x204    /* Set to TRUE to turn effect off */
  213. #define SBCOPPER_ScanLinesPerColor    SB_TagBase+0x205    /* How many scanlines before color change */
  214. #define SBCOPPER_Speed        SB_TagBase+0x206    /* How far copper should move in scanlines/vnblank */
  215. #define SBCOPPER_Pen        SB_TagBase+0x207    /* Pen to use for copper effect */
  216.  
  217.  
  218. /*****************************************************************************
  219.    Structure returned by SB_Init()
  220.  */
  221. struct SBInit {
  222.     STRPTR    Name;                        /* Name of the module */
  223.     struct Catalog *Catalog;               /* Opened locale catalog */
  224.     ULONG     Method;                      /* Invokation method (see below) */
  225.  
  226.     /* Private fields follow */
  227.     BPTR OldProgDir;
  228.     BPTR OldCurrentDir;
  229.     UBYTE NameBuffer[32];
  230. };
  231.     #define SBINIT_METHOD_NONE    0
  232.     #define SBINIT_METHOD_PREFS    1
  233.     #define SBINIT_METHOD_BLANK    2
  234.     #define SBINIT_METHOD_INFO    3
  235.  
  236. /*****************************************************************************
  237.     Tag values for SB_InitTagList().
  238.  */
  239.  
  240. #define SBINIT_Name           SB_TagBase+0x300    /* Name of module */
  241.  
  242. #define SBINFO_ShortDesc      SB_TagBase+0x301    /* string for short info */
  243. #define SBINFO_LongDesc       SB_TagBase+0x302    /* string for long info */
  244. #define SBINFO_CPU            SB_TagBase+0x305    /* CPU Type required */
  245. #define SBINFO_CPULoading     SB_TagBase+0x306    /* CPU Loading level (see below) */
  246. #define SBINFO_Stack          SB_TagBase+0x307    /* Stack required */
  247. #define SBINFO_EMail          SB_TagBase+0x308    /* EMail address of author */
  248. #define SBINFO_Author         SB_TagBase+0x309    /* Name of author */
  249. #define SBINFO_Kickstart      SB_TagBase+0x30A    /* Minimum kickstart version */
  250. #define SBINFO_Version        SB_TagBase+0x30B    /* Version */
  251. #define SBINFO_Revision       SB_TagBase+0x30C    /* Revision */
  252. #define SBINFO_Time           SB_TagBase+0x30D    /* Compilation time */
  253.  
  254. #define SBINFOLOAD_NONE       0
  255. #define SBINFOLOAD_LOW        1
  256. #define SBINFOLOAD_LOWMED    2
  257. #define SBINFOLOAD_MEDIUM    3
  258. #define SBINFOLOAD_MEDHIGH    4
  259. #define SBINFOLOAD_HIGH    5
  260.  
  261. #define SBDEF_KICKSTART       39
  262. #define SBDEF_STACK           4096
  263. #define SBDEF_CPU             68000
  264. #define SBDEF_CPULOAD         SBINFOLOAD_LOW
  265.  
  266. /*****************************************************************************
  267.     Tag values for SB_BlankNotifyTagList().
  268.  */
  269.  
  270. #define SBNOTIFY_Task           SB_TagBase+0x400    /* Task to signal */
  271. #define SBNOTIFY_BlankSigMask   SB_TagBase+0x401    /* Mask of signals to set */
  272. #define SBNOTIFY_UnBlankSigMask SB_TagBase+0x402    /* Mask of signals to set */
  273.  
  274. #endif    /* LIBRARIES_SWAZBLANKER_H */
  275.